package com.equipmentRent.system.service.impl;

import java.util.List;
import com.equipmentRent.common.utils.DateUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

import com.equipmentRent.common.utils.ShiroUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.equipmentRent.system.mapper.BannerConfigMapper;
import com.equipmentRent.system.domain.BannerConfig;
import com.equipmentRent.system.service.IBannerConfigService;
import com.equipmentRent.common.core.text.Convert;

/**
 * 轮播图管理Service业务层处理
 * 
 * @author zxl
 * @date 2025-05-15
 */
@Service
public class BannerConfigServiceImpl extends ServiceImpl<BannerConfigMapper,BannerConfig> implements IBannerConfigService

{
    @Autowired
    private BannerConfigMapper bannerConfigMapper;

    /**
     * 查询轮播图管理
     * 
     * @param id 轮播图管理主键
     * @return 轮播图管理
     */
    @Override
    public BannerConfig selectBannerConfigById(Long id)
    {
        return bannerConfigMapper.selectBannerConfigById(id);
    }

    /**
     * 查询轮播图管理列表
     * 
     * @param bannerConfig 轮播图管理
     * @return 轮播图管理
     */
    @Override
    public List<BannerConfig> selectBannerConfigList(BannerConfig bannerConfig)
    {
        return bannerConfigMapper.selectBannerConfigList(bannerConfig);
    }

    /**
     * 新增轮播图管理
     * 
     * @param bannerConfig 轮播图管理
     * @return 结果
     */
    @Override
    public int insertBannerConfig(BannerConfig bannerConfig)
    {
        Long userId = ShiroUtils.getSysUser().getUserId();
        bannerConfig.setCreateTime(DateUtils.getNowDate());
        bannerConfig.setUpdateTime(DateUtils.getNowDate());
        bannerConfig.setCreateBy(userId.intValue());
        bannerConfig.setUpdateBy(userId.intValue());
        return bannerConfigMapper.insertBannerConfig(bannerConfig);
    }

    /**
     * 修改轮播图管理
     * 
     * @param bannerConfig 轮播图管理
     * @return 结果
     */
    @Override
    public int updateBannerConfig(BannerConfig bannerConfig)
    {
        Long userId = ShiroUtils.getSysUser().getUserId();
        bannerConfig.setUpdateTime(DateUtils.getNowDate());
        bannerConfig.setUpdateBy(userId.intValue());
        return bannerConfigMapper.updateBannerConfig(bannerConfig);
    }

    /**
     * 批量删除轮播图管理
     * 
     * @param ids 需要删除的轮播图管理主键
     * @return 结果
     */
    @Override
    public int deleteBannerConfigByIds(String ids)
    {
        return bannerConfigMapper.deleteBannerConfigByIds(Convert.toStrArray(ids));
    }

    /**
     * 批量软删除轮播图管理
     *
     * @param ids 需要软删除的轮播图管理主键
     * @return 结果
     */
    @Override
    public int softDeleteBannerConfigByIds(String ids)
    {
        String[] strArray = Convert.toStrArray(ids);
        int count = 0;
        for (String s : strArray) {
            BannerConfig bannerConfig = bannerConfigMapper.selectBannerConfigById(Long.valueOf(s));
            int i = bannerConfigMapper.update(null, Wrappers.<BannerConfig>lambdaUpdate()
                    .set(BannerConfig::getIsDelete, 1L)
                    .eq(BannerConfig::getId, bannerConfig.getId()));
            count = count + i;
        }
        return count;
    }

    /**
     * 删除轮播图管理信息
     * 
     * @param id 轮播图管理主键
     * @return 结果
     */
    @Override
    public int deleteBannerConfigById(Long id)
    {
        return bannerConfigMapper.deleteBannerConfigById(id);
    }
}
